home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 2 / Amiga Tools 2.iso / tex / macros / source / contrib / mailing / mailing.dtx next >
LaTeX Document  |  1995-03-10  |  7.3 KB

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: LaTeX Document (document/latex).

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert LaTeX Document (document/latex) magic Supported
1% dexvert Text File (text/txt) fallback Supported
100% file LaTeX 2e document text default
99% file LaTeX document text default
98% file LaTeX document, ASCII text default
100% TrID LaTeX 2e document (with rem) default
100% checkBytes Printable ASCII default
100% perlTextCheck Likely Text (Perl) default
100% detectItEasy Format: plain text[LF] default (weak)



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 25 20 5c 43 68 65 63 6b | 53 75 6d 7b 31 35 37 7d |% \Check|Sum{157}|
|00000010| 0a 25 0a 25 5c 69 66 66 | 61 6c 73 65 0a 25 3c 2a |.%.%\iff|alse.%<*|
|00000020| 64 74 78 3e 0a 5c 50 72 | 6f 76 69 64 65 73 46 69 |dtx>.\Pr|ovidesFi|
|00000030| 6c 65 7b 6d 61 69 6c 69 | 6e 67 2e 64 74 78 7d 0a |le{maili|ng.dtx}.|
|00000040| 25 3c 2f 64 74 78 3e 0a | 5c 4e 65 65 64 73 54 65 |%</dtx>.|\NeedsTe|
|00000050| 58 46 6f 72 6d 61 74 7b | 4c 61 54 65 58 32 65 7d |XFormat{|LaTeX2e}|
|00000060| 0a 25 3c 70 61 63 6b 61 | 67 65 3e 5c 50 72 6f 76 |.%<packa|ge>\Prov|
|00000070| 69 64 65 73 50 61 63 6b | 61 67 65 7b 6d 61 69 6c |idesPack|age{mail|
|00000080| 69 6e 67 7d 0a 25 3c 64 | 72 69 76 65 72 3e 5c 50 |ing}.%<d|river>\P|
|00000090| 72 6f 76 69 64 65 73 46 | 69 6c 65 7b 6d 61 69 6c |rovidesF|ile{mail|
|000000a0| 69 6e 67 2e 64 72 76 7d | 0a 25 5c 66 69 0a 25 5c |ing.drv}|.%\fi.%\|
|000000b0| 50 72 6f 76 69 64 65 73 | 46 69 6c 65 7b 6d 61 69 |Provides|File{mai|
|000000c0| 6c 69 6e 67 7d 0a 20 20 | 20 20 5b 31 39 39 34 2f |ling}. | [1994/|
|000000d0| 30 39 2f 30 37 20 76 31 | 2e 30 61 20 53 65 6e 64 |09/07 v1|.0a Send|
|000000e0| 20 6c 65 74 74 65 72 73 | 20 74 6f 20 6d 75 6c 74 | letters| to mult|
|000000f0| 69 70 6c 65 20 61 64 64 | 72 65 73 73 65 73 5d 0a |iple add|resses].|
|00000100| 25 5c 69 66 66 61 6c 73 | 65 0a 25 3c 2a 64 72 69 |%\iffals|e.%<*dri|
|00000110| 76 65 72 3e 0a 5c 64 6f | 63 75 6d 65 6e 74 63 6c |ver>.\do|cumentcl|
|00000120| 61 73 73 7b 6c 74 78 64 | 6f 63 7d 0a 5c 62 65 67 |ass{ltxd|oc}.\beg|
|00000130| 69 6e 7b 64 6f 63 75 6d | 65 6e 74 7d 0a 5c 70 61 |in{docum|ent}.\pa|
|00000140| 67 65 73 74 79 6c 65 7b | 6d 79 68 65 61 64 69 6e |gestyle{|myheadin|
|00000150| 67 73 7d 0a 5c 44 6f 63 | 49 6e 70 75 74 7b 6d 61 |gs}.\Doc|Input{ma|
|00000160| 69 6c 69 6e 67 2e 64 74 | 78 7d 0a 5c 65 6e 64 7b |iling.dt|x}.\end{|
|00000170| 64 6f 63 75 6d 65 6e 74 | 7d 0a 25 3c 2f 64 72 69 |document|}.%</dri|
|00000180| 76 65 72 3e 0a 25 5c 66 | 69 0a 25 0a 25 20 5c 47 |ver>.%\f|i.%.% \G|
|00000190| 65 74 46 69 6c 65 49 6e | 66 6f 7b 6d 61 69 6c 69 |etFileIn|fo{maili|
|000001a0| 6e 67 7d 0a 25 20 5c 74 | 69 74 6c 65 7b 43 72 65 |ng}.% \t|itle{Cre|
|000001b0| 61 74 69 6e 67 20 61 20 | 6d 61 69 6c 69 6e 67 7d |ating a |mailing}|
|000001c0| 0a 25 20 5c 61 75 74 68 | 6f 72 7b 4a 6f 68 61 6e |.% \auth|or{Johan|
|000001d0| 6e 65 73 20 42 72 61 61 | 6d 73 7d 0a 25 20 5c 64 |nes Braa|ms}.% \d|
|000001e0| 61 74 65 7b 73 65 70 74 | 65 6d 62 65 72 20 37 2c |ate{sept|ember 7,|
|000001f0| 20 31 39 39 34 7d 0a 25 | 20 5c 6d 61 6b 65 74 69 | 1994}.%| \maketi|
|00000200| 74 6c 65 0a 25 0a 25 20 | 5c 6d 61 72 6b 62 6f 74 |tle.%.% |\markbot|
|00000210| 68 0a 25 20 20 20 20 20 | 20 7b 6d 61 69 6c 69 6e |h.% | {mailin|
|00000220| 67 20 70 61 63 6b 61 67 | 65 20 76 65 72 73 69 6f |g packag|e versio|
|00000230| 6e 20 5c 66 69 6c 65 76 | 65 72 73 69 6f 6e 5c 73 |n \filev|ersion\s|
|00000240| 70 61 63 65 20 61 73 20 | 6f 66 20 5c 66 69 6c 65 |pace as |of \file|
|00000250| 64 61 74 65 7d 0a 25 20 | 20 20 20 20 20 7b 6d 61 |date}.% | {ma|
|00000260| 69 6c 69 6e 67 20 70 61 | 63 6b 61 67 65 20 76 65 |iling pa|ckage ve|
|00000270| 72 73 69 6f 6e 20 5c 66 | 69 6c 65 76 65 72 73 69 |rsion \f|ileversi|
|00000280| 6f 6e 5c 73 70 61 63 65 | 20 61 73 20 6f 66 20 5c |on\space| as of \|
|00000290| 66 69 6c 65 64 61 74 65 | 7d 0a 25 0a 25 20 5c 73 |filedate|}.%.% \s|
|000002a0| 65 63 74 69 6f 6e 7b 49 | 6e 74 72 6f 64 75 63 74 |ection{I|ntroduct|
|000002b0| 69 6f 6e 7d 0a 25 0a 25 | 20 20 20 20 54 68 69 73 |ion}.%.%| This|
|000002c0| 20 70 61 63 6b 61 67 65 | 20 69 73 20 69 6e 74 65 | package| is inte|
|000002d0| 6e 64 65 64 20 74 6f 20 | 62 65 20 75 73 65 64 20 |nded to |be used |
|000002e0| 77 68 65 6e 20 79 6f 75 | 20 77 61 6e 74 20 74 6f |when you| want to|
|000002f0| 20 73 65 6e 64 20 61 20 | 6c 61 72 67 65 0a 25 20 | send a |large.% |
|00000300| 20 20 20 6e 75 6d 62 65 | 72 20 6f 66 20 6c 65 74 | numbe|r of let|
|00000310| 74 65 72 73 2c 20 61 6c | 6c 20 77 69 74 68 20 28 |ters, al|l with (|
|00000320| 61 6c 6d 6f 73 74 29 20 | 74 68 65 20 73 61 6d 65 |almost) |the same|
|00000330| 20 74 65 78 74 2e 0a 25 | 0a 25 20 20 20 20 54 68 | text..%|.% Th|
|00000340| 69 73 20 70 61 63 6b 61 | 67 65 20 69 73 20 62 61 |is packa|ge is ba|
|00000350| 73 65 64 20 6f 6e 20 74 | 68 65 20 66 6f 72 6d 65 |sed on t|he forme|
|00000360| 72 20 73 74 79 6c 65 20 | 6f 70 74 69 6f 6e 20 5c |r style |option \|
|00000370| 74 65 78 74 74 74 7b 6d | 65 72 67 65 7d 0a 25 20 |texttt{m|erge}.% |
|00000380| 20 20 20 62 79 20 47 72 | 61 65 6d 65 20 4d 63 4b | by Gr|aeme McK|
|00000390| 69 6e 73 74 72 79 2c 20 | 62 75 74 20 69 73 20 69 |instry, |but is i|
|000003a0| 73 20 61 20 72 65 69 6d | 70 6c 65 6d 65 6e 74 61 |s a reim|plementa|
|000003b0| 74 69 6f 6e 20 77 69 74 | 68 20 61 0a 25 20 20 20 |tion wit|h a.% |
|000003c0| 20 64 69 66 66 65 72 65 | 6e 74 20 75 73 65 72 20 | differe|nt user |
|000003d0| 69 6e 74 65 72 66 61 63 | 65 2e 0a 25 0a 25 20 5c |interfac|e..%.% \|
|000003e0| 73 65 63 74 69 6f 6e 7b | 54 68 65 20 75 73 65 72 |section{|The user|
|000003f0| 20 69 6e 74 65 72 66 61 | 63 65 7d 0a 25 0a 25 20 | interfa|ce}.%.% |
|00000400| 20 5c 44 65 73 63 72 69 | 62 65 4d 61 63 72 6f 7b | \Descri|beMacro{|
|00000410| 5c 61 64 64 72 65 73 73 | 66 69 6c 65 7d 0a 25 20 |\address|file}.% |
|00000420| 20 20 20 54 68 65 20 63 | 6f 6d 6d 61 6e 64 73 20 | The c|ommands |
|00000430| 7c 5c 61 64 64 72 65 73 | 73 66 69 6c 65 7c 20 74 ||\addres|sfile| t|
|00000440| 61 6b 65 73 20 61 20 66 | 69 6c 65 6e 61 6d 65 20 |akes a f|ilename |
|00000450| 61 73 20 69 74 73 20 61 | 72 67 75 6d 65 6e 74 2e |as its a|rgument.|
|00000460| 0a 25 20 20 20 20 57 68 | 65 6e 20 74 68 65 20 66 |.% Wh|en the f|
|00000470| 69 6c 65 20 63 61 6e 27 | 74 20 62 65 20 66 6f 75 |ile can'|t be fou|
|00000480| 6e 64 20 62 79 20 5c 4c | 61 54 65 58 2c 20 74 68 |nd by \L|aTeX, th|
|00000490| 65 20 75 73 65 72 20 77 | 69 6c 6c 20 62 65 20 61 |e user w|ill be a|
|000004a0| 73 6b 65 64 20 74 6f 0a | 25 20 20 20 20 73 75 70 |sked to.|% sup|
|000004b0| 70 6c 79 20 61 20 64 69 | 66 66 65 72 65 6e 74 20 |ply a di|fferent |
|000004c0| 6e 61 6d 65 2e 0a 25 0a | 25 20 20 20 20 54 68 65 |name..%.|% The|
|000004d0| 20 61 64 64 72 65 73 73 | 20 66 69 6c 65 20 73 68 | address| file sh|
|000004e0| 6f 75 6c 64 20 68 61 76 | 65 20 74 68 65 20 66 6f |ould hav|e the fo|
|000004f0| 6c 6c 6f 77 69 6e 67 20 | 66 6f 72 6d 61 74 3a 0a |llowing |format:.|
|00000500| 25 20 5c 62 65 67 69 6e | 7b 76 65 72 62 61 74 69 |% \begin|{verbati|
|00000510| 6d 7d 0a 25 4e 61 6d 65 | 20 6f 66 20 61 64 64 72 |m}.%Name| of addr|
|00000520| 65 73 73 65 65 0a 25 53 | 74 72 65 65 74 5c 5c 74 |essee.%S|treet\\t|
|00000530| 6f 77 6e 0a 25 4f 70 65 | 6e 69 6e 67 20 74 65 78 |own.%Ope|ning tex|
|00000540| 74 20 6f 66 20 74 68 65 | 20 6c 65 74 74 65 72 0a |t of the| letter.|
|00000550| 25 28 6f 70 74 69 6f 6e | 61 6c 20 64 65 66 69 6e |%(option|al defin|
|00000560| 69 74 69 6f 6e 73 29 0a | 25 3c 62 6c 61 6e 6b 20 |itions).|%<blank |
|00000570| 6c 69 6e 65 3e 0a 25 4e | 61 6d 65 20 6f 66 20 61 |line>.%N|ame of a|
|00000580| 64 64 72 65 73 73 65 65 | 0a 25 53 74 72 65 65 74 |ddressee|.%Street|
|00000590| 5c 5c 74 6f 77 6e 0a 25 | 4f 70 65 6e 69 6e 67 20 |\\town.%|Opening |
|000005a0| 74 65 78 74 20 6f 66 20 | 74 68 65 20 6c 65 74 74 |text of |the lett|
|000005b0| 65 72 0a 25 28 6f 70 74 | 69 6f 6e 61 6c 20 64 65 |er.%(opt|ional de|
|000005c0| 66 69 6e 69 74 69 6f 6e | 73 29 0a 25 3c 62 6c 61 |finition|s).%<bla|
|000005d0| 6e 6b 20 6c 69 6e 65 3e | 0a 25 2e 2e 2e 0a 25 20 |nk line>|.%....% |
|000005e0| 5c 65 6e 64 7b 76 65 72 | 62 61 74 69 6d 7d 0a 25 |\end{ver|batim}.%|
|000005f0| 20 20 20 20 54 68 65 20 | 76 61 72 69 6f 75 73 20 | The |various |
|00000600| 61 64 64 72 65 73 73 65 | 73 20 61 72 65 20 73 65 |addresse|s are se|
|00000610| 70 61 72 61 74 65 64 20 | 62 79 20 61 20 62 6c 61 |parated |by a bla|
|00000620| 6e 6b 20 6c 69 6e 65 20 | 69 6e 20 74 68 65 20 66 |nk line |in the f|
|00000630| 69 6c 65 0a 25 20 20 20 | 20 28 6d 75 6c 74 69 70 |ile.% | (multip|
|00000640| 6c 65 20 62 6c 61 6e 6b | 20 6c 69 6e 65 73 20 69 |le blank| lines i|
|00000650| 6e 20 62 65 74 77 65 65 | 6e 20 61 64 64 72 65 73 |n betwee|n addres|
|00000660| 73 65 73 20 61 72 65 20 | 61 6c 6c 6f 77 65 64 29 |ses are |allowed)|
|00000670| 2e 0a 25 20 20 20 20 49 | 74 20 69 73 20 61 6c 73 |..% I|t is als|
|00000680| 6f 20 70 6f 73 73 69 62 | 6c 65 20 74 6f 20 68 61 |o possib|le to ha|
|00000690| 76 65 20 6d 75 6c 74 69 | 70 6c 65 20 6c 69 6e 65 |ve multi|ple line|
|000006a0| 73 20 77 69 74 68 20 64 | 65 66 69 6e 69 74 69 6f |s with d|efinitio|
|000006b0| 6e 73 3b 20 74 68 65 79 | 0a 25 20 20 20 20 77 69 |ns; they|.% wi|
|000006c0| 6c 6c 20 61 6c 6c 20 62 | 65 20 65 78 65 63 75 74 |ll all b|e execut|
|000006d0| 65 64 2e 0a 25 0a 25 20 | 20 5c 44 65 73 63 72 69 |ed..%.% | \Descri|
|000006e0| 62 65 4d 61 63 72 6f 7b | 5c 6d 61 69 6c 69 6e 67 |beMacro{|\mailing|
|000006f0| 74 65 78 74 7d 0a 25 20 | 20 20 20 54 68 65 20 74 |text}.% | The t|
|00000700| 65 78 74 20 6f 66 20 74 | 68 65 20 6d 61 69 6c 69 |ext of t|he maili|
|00000710| 6e 67 20 69 73 20 65 6e | 74 65 72 65 64 20 61 73 |ng is en|tered as|
|00000720| 20 74 68 65 20 61 72 67 | 75 6d 65 6e 74 20 6f 66 | the arg|ument of|
|00000730| 0a 25 20 20 20 20 7c 5c | 6d 61 69 6c 69 6e 67 74 |.% |\|mailingt|
|00000740| 65 78 74 7c 2e 20 41 20 | 64 69 66 66 65 72 65 6e |ext|. A |differen|
|00000750| 63 65 20 77 69 74 68 20 | 74 68 65 20 6f 72 69 67 |ce with |the orig|
|00000760| 69 6e 61 6c 20 5c 74 65 | 78 74 74 74 7b 6d 65 72 |inal \te|xttt{mer|
|00000770| 67 65 2e 73 74 79 7d 0a | 25 20 20 20 20 69 73 20 |ge.sty}.|% is |
|00000780| 74 68 61 74 20 74 68 69 | 73 20 70 61 63 6b 61 67 |that thi|s packag|
|00000790| 65 20 61 6c 6c 6f 77 73 | 20 63 6f 6e 74 72 6f 6c |e allows| control|
|000007a0| 20 73 65 71 75 65 6e 63 | 65 73 20 69 6e 20 74 68 | sequenc|es in th|
|000007b0| 65 20 61 72 67 75 6d 65 | 6e 74 20 6f 66 0a 25 20 |e argume|nt of.% |
|000007c0| 20 20 20 7c 5c 6d 61 69 | 6c 69 6e 67 74 65 78 74 | |\mai|lingtext|
|000007d0| 7c 2e 20 54 68 65 73 65 | 20 63 6f 6e 74 72 6f 6c ||. These| control|
|000007e0| 20 73 65 71 75 65 6e 63 | 65 73 20 73 68 6f 75 6c | sequenc|es shoul|
|000007f0| 64 20 74 68 65 6e 20 62 | 65 20 64 65 66 69 6e 65 |d then b|e define|
|00000800| 64 20 69 6e 0a 25 20 20 | 20 20 74 68 65 20 66 69 |d in.% | the fi|
|00000810| 6c 65 20 77 69 74 68 20 | 74 68 65 20 61 64 64 72 |le with |the addr|
|00000820| 65 73 73 20 69 6e 66 6f | 72 6d 61 74 69 6f 6e 2e |ess info|rmation.|
|00000830| 0a 25 0a 25 20 20 5c 44 | 65 73 63 72 69 62 65 4d |.%.% \D|escribeM|
|00000840| 61 63 72 6f 7b 5c 6d 61 | 6b 65 6d 61 69 6c 69 6e |acro{\ma|kemailin|
|00000850| 67 7d 0a 25 20 20 20 20 | 57 68 65 6e 20 7c 5c 6d |g}.% |When |\m|
|00000860| 61 6b 65 6d 61 69 6c 69 | 6e 67 7c 20 69 73 20 63 |akemaili|ng| is c|
|00000870| 61 6c 6c 65 64 20 74 68 | 65 20 6c 65 74 74 65 72 |alled th|e letter|
|00000880| 73 20 61 72 65 20 70 72 | 6f 64 75 63 65 64 2c 20 |s are pr|oduced, |
|00000890| 63 6f 6d 62 69 6e 69 6e | 67 0a 25 20 20 20 20 74 |combinin|g.% t|
|000008a0| 68 65 20 69 6e 66 6f 72 | 6d 61 74 69 6f 6e 20 66 |he infor|mation f|
|000008b0| 6f 75 6e 64 20 69 6e 20 | 74 68 65 20 61 64 64 72 |ound in |the addr|
|000008c0| 65 73 73 20 66 69 6c 65 | 20 77 69 74 68 20 74 68 |ess file| with th|
|000008d0| 65 20 74 65 78 74 20 6f | 66 20 74 68 65 0a 25 20 |e text o|f the.% |
|000008e0| 20 20 20 6d 61 69 6c 69 | 6e 67 2e 20 0a 25 0a 25 | maili|ng. .%.%|
|000008f0| 20 5c 53 74 6f 70 45 76 | 65 6e 74 75 61 6c 6c 79 | \StopEv|entually|
|00000900| 7b 7d 0a 25 0a 25 20 20 | 5c 73 65 63 74 69 6f 6e |{}.%.% |\section|
|00000910| 7b 54 68 65 20 69 6d 70 | 6c 65 6d 65 6e 74 61 74 |{The imp|lementat|
|00000920| 69 6f 6e 7d 0a 25 0a 25 | 20 20 5c 73 75 62 73 65 |ion}.%.%| \subse|
|00000930| 63 74 69 6f 6e 7b 55 73 | 65 72 20 69 6e 74 65 72 |ction{Us|er inter|
|00000940| 66 61 63 65 7d 0a 25 0a | 25 20 20 5c 62 65 67 69 |face}.%.|% \begi|
|00000950| 6e 7b 6d 61 63 72 6f 7d | 7b 5c 61 64 64 72 65 73 |n{macro}|{\addres|
|00000960| 73 66 69 6c 65 7d 0a 25 | 20 20 20 20 54 68 65 20 |sfile}.%| The |
|00000970| 61 72 67 75 6d 65 6e 74 | 20 74 6f 20 7c 5c 61 64 |argument| to |\ad|
|00000980| 72 65 73 73 66 69 6c 65 | 7c 20 69 73 20 74 68 65 |ressfile|| is the|
|00000990| 20 6e 61 6d 65 20 6f 66 | 20 74 68 65 20 66 69 6c | name of| the fil|
|000009a0| 65 20 77 69 74 68 20 74 | 68 65 0a 25 20 20 20 20 |e with t|he.% |
|000009b0| 61 64 64 72 65 73 73 20 | 69 6e 66 6f 72 6d 61 74 |address |informat|
|000009c0| 69 6f 6e 2e 0a 25 20 20 | 20 20 5c 62 65 67 69 6e |ion..% | \begin|
|000009d0| 7b 6d 61 63 72 6f 63 6f | 64 65 7d 0a 5c 6e 65 77 |{macroco|de}.\new|
|000009e0| 63 6f 6d 6d 61 6e 64 7b | 5c 61 64 64 72 65 73 73 |command{|\address|
|000009f0| 66 69 6c 65 7d 5b 31 5d | 7b 25 0a 20 20 5c 64 65 |file}[1]|{%. \de|
|00000a00| 66 5c 4d 40 66 69 6c 65 | 6e 61 6d 65 7b 23 31 7d |f\M@file|name{#1}|
|00000a10| 7d 0a 25 20 20 20 20 5c | 65 6e 64 7b 6d 61 63 72 |}.% \|end{macr|
|00000a20| 6f 63 6f 64 65 7d 0a 25 | 20 20 5c 65 6e 64 7b 6d |ocode}.%| \end{m|
|00000a30| 61 63 72 6f 7d 0a 25 0a | 25 20 20 5c 62 65 67 69 |acro}.%.|% \begi|
|00000a40| 6e 7b 6d 61 63 72 6f 7d | 7b 5c 6d 61 69 6c 69 6e |n{macro}|{\mailin|
|00000a50| 67 74 65 78 74 7d 0a 25 | 20 20 20 20 54 68 65 20 |gtext}.%| The |
|00000a60| 61 72 67 75 6d 65 6e 74 | 20 74 6f 20 74 68 69 73 |argument| to this|
|00000a70| 20 6d 61 63 72 6f 20 63 | 6f 6e 74 61 69 6e 73 20 | macro c|ontains |
|00000a80| 74 68 65 20 65 6e 74 69 | 72 65 20 74 65 78 74 20 |the enti|re text |
|00000a90| 6f 66 20 74 68 65 0a 25 | 20 20 20 20 6d 61 69 6c |of the.%| mail|
|00000aa0| 69 6e 67 2e 20 54 68 65 | 20 74 65 78 74 20 6d 61 |ing. The| text ma|
|00000ab0| 79 20 63 6f 6e 74 61 69 | 6e 20 63 6f 6e 74 72 6f |y contai|n contro|
|00000ac0| 6c 20 73 65 71 75 65 6e | 63 65 73 20 74 6f 20 62 |l sequen|ces to b|
|00000ad0| 65 20 61 62 6c 65 20 74 | 6f 0a 25 20 20 20 20 6d |e able t|o.% m|
|00000ae0| 61 6b 65 20 76 61 72 69 | 61 74 69 6f 6e 73 20 69 |ake vari|ations i|
|00000af0| 6e 20 74 68 65 20 74 65 | 78 74 2e 0a 25 20 20 20 |n the te|xt..% |
|00000b00| 20 5c 62 65 67 69 6e 7b | 6d 61 63 72 6f 63 6f 64 | \begin{|macrocod|
|00000b10| 65 7d 0a 5c 6c 6f 6e 67 | 5c 64 65 66 5c 6d 61 69 |e}.\long|\def\mai|
|00000b20| 6c 69 6e 67 74 65 78 74 | 23 31 7b 5c 67 6c 6f 62 |lingtext|#1{\glob|
|00000b30| 61 6c 5c 6d 61 69 6c 69 | 6e 67 40 74 65 78 74 3d |al\maili|ng@text=|
|00000b40| 7b 23 31 7d 7d 0a 25 20 | 20 20 20 5c 65 6e 64 7b |{#1}}.% | \end{|
|00000b50| 6d 61 63 72 6f 63 6f 64 | 65 7d 0a 25 20 20 5c 65 |macrocod|e}.% \e|
|00000b60| 6e 64 7b 6d 61 63 72 6f | 7d 0a 25 0a 25 20 20 5c |nd{macro|}.%.% \|
|00000b70| 62 65 67 69 6e 7b 6d 61 | 63 72 6f 7d 7b 5c 6d 61 |begin{ma|cro}{\ma|
|00000b80| 6b 65 6d 61 69 6c 69 6e | 67 7d 0a 25 20 20 20 20 |kemailin|g}.% |
|00000b90| 54 68 65 20 63 6f 6d 6d | 61 6e 64 20 7c 5c 6d 61 |The comm|and |\ma|
|00000ba0| 6b 65 6d 61 69 6c 69 6e | 67 7c 20 77 69 6c 6c 20 |kemailin|g| will |
|00000bb0| 70 72 6f 64 75 63 65 20 | 74 68 65 20 6d 61 69 6c |produce |the mail|
|00000bc0| 69 6e 67 2c 20 72 65 61 | 64 69 6e 67 0a 25 20 20 |ing, rea|ding.% |
|00000bd0| 20 20 61 64 64 72 65 73 | 73 65 73 2c 20 6f 70 65 | addres|ses, ope|
|00000be0| 6e 69 6e 67 73 20 61 6e | 64 20 6f 70 74 69 6f 6e |nings an|d option|
|00000bf0| 61 6c 20 64 65 66 69 6e | 69 74 69 6f 6e 73 20 6f |al defin|itions o|
|00000c00| 66 20 76 61 72 69 61 62 | 6c 65 20 74 65 78 74 0a |f variab|le text.|
|00000c10| 25 20 20 20 20 70 61 72 | 74 73 20 66 72 6f 6d 20 |% par|ts from |
|00000c20| 61 6e 20 65 78 74 65 72 | 6e 61 6c 20 66 69 6c 65 |an exter|nal file|
|00000c30| 2e 0a 25 20 20 20 20 5c | 62 65 67 69 6e 7b 6d 61 |..% \|begin{ma|
|00000c40| 63 72 6f 63 6f 64 65 7d | 0a 5c 64 65 66 5c 6d 61 |crocode}|.\def\ma|
|00000c50| 6b 65 6d 61 69 6c 69 6e | 67 7b 25 0a 20 20 5c 4d |kemailin|g{%. \M|
|00000c60| 40 6f 70 65 6e 61 64 72 | 66 69 6c 65 0a 20 20 5c |@openadr|file. \|
|00000c70| 6c 6f 6f 70 0a 20 20 20 | 20 5c 72 65 61 64 40 69 |loop. | \read@i|
|00000c80| 6e 66 6f 0a 20 20 20 20 | 5c 69 66 40 6e 6f 74 72 |nfo. |\if@notr|
|00000c90| 65 61 64 79 0a 20 20 20 | 20 20 20 5c 62 65 67 69 |eady. | \begi|
|00000ca0| 6e 7b 6c 65 74 74 65 72 | 7d 7b 5c 4d 40 74 6f 6e |n{letter|}{\M@ton|
|00000cb0| 61 6d 65 5c 5c 5c 4d 40 | 74 6f 61 64 64 72 65 73 |ame\\\M@|toaddres|
|00000cc0| 73 7d 25 0a 20 20 20 20 | 20 20 20 20 5c 6f 70 65 |s}%. | \ope|
|00000cd0| 6e 69 6e 67 7b 5c 4d 40 | 6f 70 65 6e 69 6e 67 7d |ning{\M@|opening}|
|00000ce0| 25 0a 20 20 20 20 20 20 | 20 20 5c 76 73 6b 69 70 |%. | \vskip|
|00000cf0| 5c 62 61 73 65 6c 69 6e | 65 73 6b 69 70 0a 20 20 |\baselin|eskip. |
|00000d00| 20 20 20 20 20 20 5c 74 | 68 65 5c 6d 61 69 6c 69 | \t|he\maili|
|00000d10| 6e 67 40 74 65 78 74 0a | 20 20 20 20 20 20 5c 65 |ng@text.| \e|
|00000d20| 6e 64 7b 6c 65 74 74 65 | 72 7d 0a 20 20 20 20 5c |nd{lette|r}. \|
|00000d30| 66 69 0a 20 20 20 20 5c | 69 66 40 6e 6f 74 72 65 |fi. \|if@notre|
|00000d40| 61 64 79 0a 20 20 5c 72 | 65 70 65 61 74 7d 0a 25 |ady. \r|epeat}.%|
|00000d50| 20 20 20 20 5c 65 6e 64 | 7b 6d 61 63 72 6f 63 6f | \end|{macroco|
|00000d60| 64 65 7d 0a 25 20 20 5c | 65 6e 64 7b 6d 61 63 72 |de}.% \|end{macr|
|00000d70| 6f 7d 0a 25 0a 25 20 20 | 5c 73 75 62 73 65 63 74 |o}.%.% |\subsect|
|00000d80| 69 6f 6e 7b 41 6c 6c 6f | 63 61 74 69 6f 6e 73 7d |ion{Allo|cations}|
|00000d90| 0a 25 0a 25 20 20 5c 62 | 65 67 69 6e 7b 6d 61 63 |.%.% \b|egin{mac|
|00000da0| 72 6f 7d 7b 5c 4d 40 61 | 64 72 66 69 6c 65 7d 0a |ro}{\M@a|drfile}.|
|00000db0| 25 20 20 20 20 57 65 20 | 6e 65 65 64 20 74 6f 20 |% We |need to |
|00000dc0| 61 6c 6c 6f 63 61 74 65 | 20 61 6e 20 69 6e 70 75 |allocate| an inpu|
|00000dd0| 74 20 73 74 72 65 61 6d | 20 66 6f 72 20 74 68 65 |t stream| for the|
|00000de0| 20 66 69 6c 65 20 77 69 | 74 68 20 74 68 65 20 61 | file wi|th the a|
|00000df0| 64 64 72 65 73 73 0a 25 | 20 20 20 20 69 6e 66 6f |ddress.%| info|
|00000e00| 72 6d 61 74 69 6f 6e 2e | 20 0a 25 20 20 20 20 5c |rmation.| .% \|
|00000e10| 62 65 67 69 6e 7b 6d 61 | 63 72 6f 63 6f 64 65 7d |begin{ma|crocode}|
|00000e20| 0a 5c 6e 65 77 72 65 61 | 64 5c 4d 40 61 64 72 66 |.\newrea|d\M@adrf|
|00000e30| 69 6c 65 0a 25 20 20 20 | 20 5c 65 6e 64 7b 6d 61 |ile.% | \end{ma|
|00000e40| 63 72 6f 63 6f 64 65 7d | 0a 25 20 20 5c 65 6e 64 |crocode}|.% \end|
|00000e50| 7b 6d 61 63 72 6f 7d 0a | 25 0a 25 20 20 5c 62 65 |{macro}.|%.% \be|
|00000e60| 67 69 6e 7b 6d 61 63 72 | 6f 7d 7b 5c 6d 61 69 6c |gin{macr|o}{\mail|
|00000e70| 69 6e 67 40 74 65 78 74 | 7d 0a 25 20 20 20 20 54 |ing@text|}.% T|
|00000e80| 68 65 20 63 6f 6e 74 65 | 6e 74 73 20 6f 66 20 74 |he conte|nts of t|
|00000e90| 68 65 20 6c 65 74 74 65 | 72 20 61 72 65 20 73 74 |he lette|r are st|
|00000ea0| 6f 72 65 64 20 69 6e 20 | 61 20 74 6f 6b 65 6e 20 |ored in |a token |
|00000eb0| 72 65 67 69 73 74 65 72 | 0a 25 20 20 20 20 5c 62 |register|.% \b|
|00000ec0| 65 67 69 6e 7b 6d 61 63 | 72 6f 63 6f 64 65 7d 0a |egin{mac|rocode}.|
|00000ed0| 5c 6e 65 77 74 6f 6b 73 | 5c 6d 61 69 6c 69 6e 67 |\newtoks|\mailing|
|00000ee0| 40 74 65 78 74 0a 25 20 | 20 20 20 5c 65 6e 64 7b |@text.% | \end{|
|00000ef0| 6d 61 63 72 6f 63 6f 64 | 65 7d 0a 25 20 20 5c 65 |macrocod|e}.% \e|
|00000f00| 6e 64 7b 6d 61 63 72 6f | 7d 0a 25 0a 25 20 20 5c |nd{macro|}.%.% \|
|00000f10| 62 65 67 69 6e 7b 6d 61 | 63 72 6f 7d 7b 5c 69 66 |begin{ma|cro}{\if|
|00000f20| 40 6e 6f 74 72 65 61 64 | 79 7d 0a 25 20 20 20 20 |@notread|y}.% |
|00000f30| 41 20 73 77 69 74 63 68 | 20 77 68 69 63 68 20 69 |A switch| which i|
|00000f40| 6e 64 69 63 61 74 65 73 | 20 69 66 20 74 68 65 20 |ndicates| if the |
|00000f50| 66 69 6c 65 20 7c 5c 4d | 40 61 64 72 66 69 6c 65 |file |\M|@adrfile|
|00000f60| 7c 20 68 61 73 20 62 65 | 65 6e 0a 25 20 20 20 20 || has be|en.% |
|00000f70| 65 78 68 61 75 73 74 65 | 64 2e 20 0a 25 20 20 20 |exhauste|d. .% |
|00000f80| 20 5c 62 65 67 69 6e 7b | 6d 61 63 72 6f 63 6f 64 | \begin{|macrocod|
|00000f90| 65 7d 0a 5c 6e 65 77 69 | 66 5c 69 66 40 6e 6f 74 |e}.\newi|f\if@not|
|00000fa0| 72 65 61 64 79 0a 5c 6e | 65 77 69 66 5c 69 66 40 |ready.\n|ewif\if@|
|00000fb0| 6e 6f 74 65 6d 70 74 79 | 6f 72 65 6f 66 0a 25 20 |notempty|oreof.% |
|00000fc0| 20 20 20 5c 65 6e 64 7b | 6d 61 63 72 6f 63 6f 64 | \end{|macrocod|
|00000fd0| 65 7d 0a 25 20 20 5c 65 | 6e 64 7b 6d 61 63 72 6f |e}.% \e|nd{macro|
|00000fe0| 7d 0a 25 0a 25 20 20 5c | 73 75 62 73 65 63 74 69 |}.%.% \|subsecti|
|00000ff0| 6f 6e 7b 49 6e 74 65 72 | 6e 61 6c 20 6d 61 63 72 |on{Inter|nal macr|
|00001000| 6f 73 7d 0a 25 0a 25 20 | 20 5c 62 65 67 69 6e 7b |os}.%.% | \begin{|
|00001010| 6d 61 63 72 6f 7d 7b 5c | 4d 40 6f 70 65 6e 61 64 |macro}{\|M@openad|
|00001020| 72 66 69 6c 65 7d 0a 25 | 20 20 20 20 54 68 65 20 |rfile}.%| The |
|00001030| 6d 61 63 72 6f 20 7c 5c | 4d 40 6f 70 65 6e 61 64 |macro |\|M@openad|
|00001040| 72 66 69 6c 65 7c 20 74 | 72 69 65 73 20 74 6f 20 |rfile| t|ries to |
|00001050| 6f 70 65 6e 20 7c 5c 4d | 40 66 69 6c 65 6e 61 6d |open |\M|@filenam|
|00001060| 65 7c 2e 20 49 74 20 74 | 68 61 74 0a 25 20 20 20 |e|. It t|hat.% |
|00001070| 20 64 6f 65 73 6e 27 74 | 20 73 75 63 63 65 65 64 | doesn't| succeed|
|00001080| 20 69 74 20 61 73 6b 73 | 20 74 68 65 20 75 73 65 | it asks| the use|
|00001090| 72 20 74 6f 20 73 75 70 | 70 6c 79 20 61 20 6e 65 |r to sup|ply a ne|
|000010a0| 77 20 6e 61 6d 65 2e 20 | 54 68 69 73 20 69 73 0a |w name. |This is.|
|000010b0| 25 20 20 20 20 64 6f 6e | 65 20 75 6e 74 69 6c 6c |% don|e untill|
|000010c0| 20 61 20 66 69 6c 65 20 | 69 73 20 66 6f 75 6e 64 | a file |is found|
|000010d0| 2e 0a 25 20 20 20 20 5c | 62 65 67 69 6e 7b 6d 61 |..% \|begin{ma|
|000010e0| 63 72 6f 63 6f 64 65 7d | 0a 5c 64 65 66 5c 4d 40 |crocode}|.\def\M@|
|000010f0| 6f 70 65 6e 61 64 72 66 | 69 6c 65 7b 25 0a 20 20 |openadrf|ile{%. |
|00001100| 5c 6f 70 65 6e 69 6e 5c | 4d 40 61 64 72 66 69 6c |\openin\|M@adrfil|
|00001110| 65 5c 4d 40 66 69 6c 65 | 6e 61 6d 65 5c 72 65 6c |e\M@file|name\rel|
|00001120| 61 78 0a 20 20 5c 69 66 | 65 6f 66 5c 4d 40 61 64 |ax. \if|eof\M@ad|
|00001130| 72 66 69 6c 65 0a 20 20 | 20 20 5c 6c 6f 6f 70 0a |rfile. | \loop.|
|00001140| 20 20 20 20 20 20 25 5c | 50 61 63 6b 61 67 65 57 | %\|PackageW|
|00001150| 61 72 6e 69 6e 67 7b 6d | 61 69 6c 69 6e 67 7d 7b |arning{m|ailing}{|
|00001160| 49 20 63 61 6e 27 74 20 | 66 69 6e 64 20 74 68 65 |I can't |find the|
|00001170| 20 66 69 6c 65 20 5c 4d | 40 66 69 6c 65 6e 61 6d | file \M|@filenam|
|00001180| 65 7d 0a 20 20 20 20 20 | 20 5c 74 79 70 65 6f 75 |e}. | \typeou|
|00001190| 74 7b 49 20 63 61 6e 27 | 74 20 66 69 6e 64 20 74 |t{I can'|t find t|
|000011a0| 68 65 20 66 69 6c 65 20 | 5c 4d 40 66 69 6c 65 6e |he file |\M@filen|
|000011b0| 61 6d 65 21 7d 0a 20 20 | 20 20 20 20 5c 63 6c 6f |ame!}. | \clo|
|000011c0| 73 65 69 6e 5c 4d 40 61 | 64 72 66 69 6c 65 0a 20 |sein\M@a|drfile. |
|000011d0| 20 20 20 20 20 5c 74 79 | 70 65 69 6e 5b 5c 4d 40 | \ty|pein[\M@|
|000011e0| 66 69 6c 65 6e 61 6d 65 | 5d 7b 45 6e 74 65 72 20 |filename|]{Enter |
|000011f0| 61 20 6e 65 77 20 6e 61 | 6d 65 7d 0a 20 20 20 20 |a new na|me}. |
|00001200| 20 20 5c 6f 70 65 6e 69 | 6e 5c 4d 40 61 64 72 66 | \openi|n\M@adrf|
|00001210| 69 6c 65 5c 4d 40 66 69 | 6c 65 6e 61 6d 65 0a 20 |ile\M@fi|lename. |
|00001220| 20 20 20 20 20 5c 69 66 | 65 6f 66 5c 4d 40 61 64 | \if|eof\M@ad|
|00001230| 72 66 69 6c 65 0a 20 20 | 20 20 5c 72 65 70 65 61 |rfile. | \repea|
|00001240| 74 0a 20 20 5c 66 69 7d | 0a 25 20 20 20 20 5c 65 |t. \fi}|.% \e|
|00001250| 6e 64 7b 6d 61 63 72 6f | 63 6f 64 65 7d 0a 25 20 |nd{macro|code}.% |
|00001260| 20 5c 65 6e 64 7b 6d 61 | 63 72 6f 7d 0a 25 0a 25 | \end{ma|cro}.%.%|
|00001270| 20 20 5c 62 65 67 69 6e | 7b 6d 61 63 72 6f 7d 7b | \begin|{macro}{|
|00001280| 5c 72 65 61 64 40 69 6e | 66 6f 7d 0a 25 20 20 20 |\read@in|fo}.% |
|00001290| 20 54 68 65 20 6d 61 63 | 72 6f 20 7c 5c 72 65 61 | The mac|ro |\rea|
|000012a0| 64 40 69 6e 66 6f 7c 20 | 74 61 6b 65 73 20 63 61 |d@info| |takes ca|
|000012b0| 72 65 20 6f 66 20 74 68 | 65 20 72 65 61 64 69 6e |re of th|e readin|
|000012c0| 67 20 6f 66 20 61 6c 6c | 20 74 68 65 0a 25 20 20 |g of all| the.% |
|000012d0| 20 20 69 6e 66 6f 72 6d | 61 74 69 6f 6e 20 66 72 | inform|ation fr|
|000012e0| 6f 6d 20 7c 5c 4d 40 61 | 64 72 66 69 6c 65 7c 2c |om |\M@a|drfile|,|
|000012f0| 20 6e 65 65 64 65 64 20 | 74 6f 20 66 6f 72 6d 61 | needed |to forma|
|00001300| 74 20 61 6e 6f 74 68 65 | 72 20 6c 65 74 74 65 72 |t anothe|r letter|
|00001310| 2e 0a 25 20 20 20 20 5c | 62 65 67 69 6e 7b 6d 61 |..% \|begin{ma|
|00001320| 63 72 6f 63 6f 64 65 7d | 0a 5c 64 65 66 5c 72 65 |crocode}|.\def\re|
|00001330| 61 64 40 69 6e 66 6f 7b | 25 0a 20 20 5c 73 6b 69 |ad@info{|%. \ski|
|00001340| 70 40 65 6d 70 74 79 40 | 6c 69 6e 65 73 0a 25 20 |p@empty@|lines.% |
|00001350| 20 20 20 5c 65 6e 64 7b | 6d 61 63 72 6f 63 6f 64 | \end{|macrocod|
|00001360| 65 7d 0a 25 20 20 20 20 | 54 68 65 20 6d 61 63 72 |e}.% |The macr|
|00001370| 6f 20 7c 5c 73 6b 69 70 | 40 65 6d 70 74 79 40 6c |o |\skip|@empty@l|
|00001380| 69 6e 65 73 7c 20 6c 65 | 61 76 65 73 20 74 68 65 |ines| le|aves the|
|00001390| 20 6e 6f 6e 2d 65 6d 70 | 74 79 20 6c 69 6e 65 20 | non-emp|ty line |
|000013a0| 69 74 20 66 6f 75 6e 64 | 0a 25 20 20 20 20 69 6e |it found|.% in|
|000013b0| 20 7c 5c 4d 40 6c 69 6e | 65 73 7c 2e 20 49 66 20 | |\M@lin|es|. If |
|000013c0| 69 74 20 66 6f 75 6e 64 | 20 61 6e 20 65 6e 64 20 |it found| an end |
|000013d0| 6f 66 20 66 69 6c 65 20 | 63 6f 6e 64 69 74 69 6f |of file |conditio|
|000013e0| 6e 20 74 68 65 0a 25 20 | 20 20 20 7c 5c 69 66 40 |n the.% | |\if@|
|000013f0| 6e 6f 74 72 65 61 64 79 | 7c 20 66 6c 61 67 20 77 |notready|| flag w|
|00001400| 69 6c 6c 20 62 65 20 73 | 65 74 20 74 6f 20 7c 5c |ill be s|et to |\|
|00001410| 69 66 66 61 6c 73 65 7c | 2e 0a 25 20 20 20 20 5c |iffalse||..% \|
|00001420| 62 65 67 69 6e 7b 6d 61 | 63 72 6f 63 6f 64 65 7d |begin{ma|crocode}|
|00001430| 0a 20 20 5c 69 66 40 6e | 6f 74 72 65 61 64 79 0a |. \if@n|otready.|
|00001440| 20 20 20 20 5c 6c 65 74 | 5c 4d 40 74 6f 6e 61 6d | \let|\M@tonam|
|00001450| 65 5c 4d 40 6c 69 6e 65 | 0a 20 20 20 20 5c 72 65 |e\M@line|. \re|
|00001460| 61 64 5c 4d 40 61 64 72 | 66 69 6c 65 20 74 6f 5c |ad\M@adr|file to\|
|00001470| 4d 40 74 6f 61 64 64 72 | 65 73 73 0a 20 20 20 20 |M@toaddr|ess. |
|00001480| 5c 72 65 61 64 5c 4d 40 | 61 64 72 66 69 6c 65 20 |\read\M@|adrfile |
|00001490| 74 6f 5c 4d 40 6f 70 65 | 6e 69 6e 67 0a 20 20 20 |to\M@ope|ning. |
|000014a0| 20 5c 74 65 73 74 40 65 | 6f 66 0a 20 20 20 20 5c | \test@e|of. \|
|000014b0| 69 66 40 6e 6f 74 72 65 | 61 64 79 5c 72 65 61 64 |if@notre|ady\read|
|000014c0| 40 64 65 66 73 5c 66 69 | 0a 20 20 5c 66 69 0a 20 |@defs\fi|. \fi. |
|000014d0| 20 7d 0a 25 20 20 20 20 | 5c 65 6e 64 7b 6d 61 63 | }.% |\end{mac|
|000014e0| 72 6f 63 6f 64 65 7d 0a | 25 20 20 5c 65 6e 64 7b |rocode}.|% \end{|
|000014f0| 6d 61 63 72 6f 7d 0a 25 | 0a 25 20 20 5c 62 65 67 |macro}.%|.% \beg|
|00001500| 69 6e 7b 6d 61 63 72 6f | 7d 7b 5c 72 65 61 64 40 |in{macro|}{\read@|
|00001510| 64 65 66 73 7d 0a 25 20 | 20 20 20 52 65 61 64 73 |defs}.% | Reads|
|00001520| 20 64 65 66 69 6e 69 74 | 69 6f 6e 73 20 6f 66 20 | definit|ions of |
|00001530| 63 6f 6e 74 72 6f 6c 20 | 73 65 71 75 65 6e 63 65 |control |sequence|
|00001540| 73 20 66 72 6f 6d 20 74 | 68 65 20 66 69 6c 65 20 |s from t|he file |
|00001550| 7c 5c 4d 40 61 64 72 66 | 69 6c 65 7c 0a 25 20 20 ||\M@adrf|ile|.% |
|00001560| 20 20 75 6e 74 69 6c 20 | 65 69 74 68 65 72 20 61 | until |either a|
|00001570| 6e 20 65 6d 70 74 79 20 | 6c 69 6e 65 20 69 73 20 |n empty |line is |
|00001580| 66 6f 75 6e 64 20 6f 72 | 20 74 68 65 20 65 6e 64 |found or| the end|
|00001590| 20 6f 66 20 66 69 6c 65 | 20 69 73 0a 25 20 20 20 | of file| is.% |
|000015a0| 20 72 65 61 63 68 65 64 | 2e 20 45 61 63 68 20 6c | reached|. Each l|
|000015b0| 69 6e 65 20 69 73 20 73 | 74 6f 72 65 64 20 69 6e |ine is s|tored in|
|000015c0| 20 61 20 63 6f 6e 74 72 | 6f 6c 20 73 65 71 75 65 | a contr|ol seque|
|000015d0| 6e 63 65 20 61 6e 64 20 | 69 74 20 69 73 0a 25 20 |nce and |it is.% |
|000015e0| 20 20 20 65 78 65 63 75 | 74 65 64 20 61 66 74 65 | execu|ted afte|
|000015f0| 72 20 61 6c 6c 20 64 65 | 66 69 6e 69 74 69 6f 6e |r all de|finition|
|00001600| 73 20 61 72 65 20 72 65 | 61 64 2e 0a 25 20 20 20 |s are re|ad..% |
|00001610| 20 5c 62 65 67 69 6e 7b | 6d 61 63 72 6f 63 6f 64 | \begin{|macrocod|
|00001620| 65 7d 0a 5c 64 65 66 5c | 72 65 61 64 40 64 65 66 |e}.\def\|read@def|
|00001630| 73 7b 25 0a 20 20 5c 64 | 65 66 5c 4d 40 64 65 66 |s{%. \d|ef\M@def|
|00001640| 6e 73 7b 7d 25 0a 20 20 | 7b 5c 6c 6f 6f 70 0a 20 |ns{}%. |{\loop. |
|00001650| 20 20 20 5c 65 6e 64 6c | 69 6e 65 63 68 61 72 3d | \endl|inechar=|
|00001660| 2d 31 0a 20 20 20 20 5c | 72 65 61 64 5c 4d 40 61 |-1. \|read\M@a|
|00001670| 64 72 66 69 6c 65 20 74 | 6f 5c 4d 40 6c 69 6e 65 |drfile t|o\M@line|
|00001680| 0a 20 20 20 20 5c 65 6e | 64 6c 69 6e 65 63 68 61 |. \en|dlinecha|
|00001690| 72 3d 60 5c 5e 5e 4d 0a | 25 20 20 20 20 5c 65 6e |r=`\^^M.|% \en|
|000016a0| 64 7b 6d 61 63 72 6f 63 | 6f 64 65 7d 0a 25 20 20 |d{macroc|ode}.% |
|000016b0| 20 20 57 65 20 6e 65 65 | 64 20 74 6f 20 67 65 74 | We nee|d to get|
|000016c0| 20 74 68 65 20 65 78 70 | 61 6e 73 69 6f 6e 20 6f | the exp|ansion o|
|000016d0| 66 20 7c 5c 4d 40 6c 69 | 6e 65 7c 20 69 6e 74 6f |f |\M@li|ne| into|
|000016e0| 20 74 68 65 20 64 65 66 | 69 6e 69 74 69 6f 6e 20 | the def|inition |
|000016f0| 6f 66 0a 25 20 20 20 20 | 7c 5c 4d 40 64 65 66 6e |of.% ||\M@defn|
|00001700| 73 7c 2c 20 6e 6f 74 20 | 7c 5c 4d 40 6c 69 6e 65 |s|, not ||\M@line|
|00001710| 7c 20 69 74 73 65 6c 66 | 2e 20 54 68 65 72 65 66 || itself|. Theref|
|00001720| 6f 72 65 20 7c 5c 4d 40 | 6c 69 6e 65 7c 20 69 73 |ore |\M@|line| is|
|00001730| 20 65 78 70 61 6e 64 65 | 64 0a 25 20 20 20 20 62 | expande|d.% b|
|00001740| 65 66 6f 72 65 20 7c 5c | 4d 40 64 65 66 6e 73 7c |efore |\|M@defns||
|00001750| 2e 0a 25 20 20 20 20 5c | 62 65 67 69 6e 7b 6d 61 |..% \|begin{ma|
|00001760| 63 72 6f 63 6f 64 65 7d | 0a 20 20 20 20 5c 65 78 |crocode}|. \ex|
|00001770| 70 61 6e 64 61 66 74 65 | 72 5c 74 6f 6b 73 40 5c |pandafte|r\toks@\|
|00001780| 65 78 70 61 6e 64 61 66 | 74 65 72 5c 65 78 70 61 |expandaf|ter\expa|
|00001790| 6e 64 61 66 74 65 72 0a | 20 20 20 20 20 20 5c 65 |ndafter.| \e|
|000017a0| 78 70 61 6e 64 61 66 74 | 65 72 7b 5c 65 78 70 61 |xpandaft|er{\expa|
|000017b0| 6e 64 61 66 74 65 72 5c | 4d 40 64 65 66 6e 73 5c |ndafter\|M@defns\|
|000017c0| 4d 40 6c 69 6e 65 7d 25 | 0a 20 20 20 20 5c 78 64 |M@line}%|. \xd|
|000017d0| 65 66 5c 4d 40 64 65 66 | 6e 73 7b 5c 74 68 65 5c |ef\M@def|ns{\the\|
|000017e0| 74 6f 6b 73 40 7d 25 0a | 20 20 20 20 5c 74 65 73 |toks@}%.| \tes|
|000017f0| 74 40 65 6d 70 74 79 6f | 72 65 6f 66 0a 20 20 20 |t@emptyo|reof. |
|00001800| 20 5c 69 66 40 6e 6f 74 | 65 6d 70 74 79 6f 72 65 | \if@not|emptyore|
|00001810| 6f 66 0a 20 20 20 20 5c | 72 65 70 65 61 74 7d 25 |of. \|repeat}%|
|00001820| 0a 20 20 5c 4d 40 64 65 | 66 6e 73 0a 20 20 7d 0a |. \M@de|fns. }.|
|00001830| 25 20 20 20 20 5c 65 6e | 64 7b 6d 61 63 72 6f 63 |% \en|d{macroc|
|00001840| 6f 64 65 7d 0a 25 20 20 | 5c 65 6e 64 7b 6d 61 63 |ode}.% |\end{mac|
|00001850| 72 6f 7d 0a 25 0a 25 20 | 20 5c 62 65 67 69 6e 7b |ro}.%.% | \begin{|
|00001860| 6d 61 63 72 6f 7d 7b 5c | 74 65 73 74 40 65 6f 66 |macro}{\|test@eof|
|00001870| 7d 0a 25 20 20 20 20 54 | 68 65 20 6d 61 63 72 6f |}.% T|he macro|
|00001880| 20 7c 5c 74 65 73 74 40 | 65 6f 66 7c 20 74 65 73 | |\test@|eof| tes|
|00001890| 74 73 20 74 68 65 20 73 | 74 61 74 75 73 20 6f 66 |ts the s|tatus of|
|000018a0| 20 6f 66 20 74 68 65 20 | 69 6e 70 75 74 20 66 69 | of the |input fi|
|000018b0| 6c 65 2e 20 0a 25 20 20 | 20 20 5c 62 65 67 69 6e |le. .% | \begin|
|000018c0| 7b 6d 61 63 72 6f 63 6f | 64 65 7d 0a 5c 64 65 66 |{macroco|de}.\def|
|000018d0| 5c 74 65 73 74 40 65 6f | 66 7b 25 0a 20 20 5c 69 |\test@eo|f{%. \i|
|000018e0| 66 65 6f 66 5c 4d 40 61 | 64 72 66 69 6c 65 0a 20 |feof\M@a|drfile. |
|000018f0| 20 20 20 5c 40 6e 6f 74 | 72 65 61 64 79 66 61 6c | \@not|readyfal|
|00001900| 73 65 0a 20 20 5c 65 6c | 73 65 0a 20 20 20 20 5c |se. \el|se. \|
|00001910| 40 6e 6f 74 72 65 61 64 | 79 74 72 75 65 0a 20 20 |@notread|ytrue. |
|00001920| 5c 66 69 7d 0a 25 20 20 | 20 20 5c 65 6e 64 7b 6d |\fi}.% | \end{m|
|00001930| 61 63 72 6f 63 6f 64 65 | 7d 0a 25 20 20 5c 65 6e |acrocode|}.% \en|
|00001940| 64 7b 6d 61 63 72 6f 7d | 0a 25 0a 25 20 20 5c 62 |d{macro}|.%.% \b|
|00001950| 65 67 69 6e 7b 6d 61 63 | 72 6f 7d 7b 5c 74 65 73 |egin{mac|ro}{\tes|
|00001960| 74 40 65 6d 70 74 79 6f | 72 65 6f 66 7d 0a 25 20 |t@emptyo|reof}.% |
|00001970| 20 20 20 54 68 65 20 6d | 61 63 72 6f 20 7c 5c 74 | The m|acro |\t|
|00001980| 65 73 74 40 65 6d 70 74 | 79 6f 72 65 6f 66 7c 20 |est@empt|yoreof| |
|00001990| 63 68 65 63 6b 73 20 77 | 68 65 74 68 65 72 20 77 |checks w|hether w|
|000019a0| 65 20 72 65 61 63 68 65 | 64 20 61 6e 20 65 6d 70 |e reache|d an emp|
|000019b0| 74 79 0a 25 20 20 20 20 | 6c 69 6e 65 20 5c 65 6d |ty.% |line \em|
|000019c0| 70 68 7b 6f 72 7d 20 74 | 68 65 20 65 6e 64 20 6f |ph{or} t|he end o|
|000019d0| 66 20 74 68 65 20 66 69 | 6c 65 2e 0a 25 20 20 20 |f the fi|le..% |
|000019e0| 20 5c 62 65 67 69 6e 7b | 6d 61 63 72 6f 63 6f 64 | \begin{|macrocod|
|000019f0| 65 7d 0a 5c 64 65 66 5c | 74 65 73 74 40 65 6d 70 |e}.\def\|test@emp|
|00001a00| 74 79 6f 72 65 6f 66 7b | 25 0a 20 20 5c 40 6e 6f |tyoreof{|%. \@no|
|00001a10| 74 65 6d 70 74 79 6f 72 | 65 6f 66 74 72 75 65 0a |temptyor|eoftrue.|
|00001a20| 20 20 5c 69 66 78 5c 4d | 40 6c 69 6e 65 5c 40 65 | \ifx\M|@line\@e|
|00001a30| 6d 70 74 79 0a 20 20 20 | 20 5c 67 6c 6f 62 61 6c |mpty. | \global|
|00001a40| 5c 40 6e 6f 74 65 6d 70 | 74 79 6f 72 65 6f 66 66 |\@notemp|tyoreoff|
|00001a50| 61 6c 73 65 0a 20 20 5c | 66 69 0a 20 20 5c 69 66 |alse. \|fi. \if|
|00001a60| 65 6f 66 5c 4d 40 61 64 | 72 66 69 6c 65 0a 20 20 |eof\M@ad|rfile. |
|00001a70| 20 20 5c 67 6c 6f 62 61 | 6c 5c 40 6e 6f 74 65 6d | \globa|l\@notem|
|00001a80| 70 74 79 6f 72 65 6f 66 | 66 61 6c 73 65 0a 20 20 |ptyoreof|false. |
|00001a90| 20 20 5c 67 6c 6f 62 61 | 6c 5c 40 6e 6f 74 72 65 | \globa|l\@notre|
|00001aa0| 61 64 79 66 61 6c 73 65 | 0a 20 20 5c 66 69 7d 0a |adyfalse|. \fi}.|
|00001ab0| 25 20 20 20 20 5c 65 6e | 64 7b 6d 61 63 72 6f 63 |% \en|d{macroc|
|00001ac0| 6f 64 65 7d 0a 25 20 20 | 5c 65 6e 64 7b 6d 61 63 |ode}.% |\end{mac|
|00001ad0| 72 6f 7d 0a 25 0a 25 20 | 20 5c 62 65 67 69 6e 7b |ro}.%.% | \begin{|
|00001ae0| 6d 61 63 72 6f 7d 7b 5c | 73 6b 69 70 40 65 6d 70 |macro}{\|skip@emp|
|00001af0| 74 79 40 6c 69 6e 65 73 | 7d 0a 25 20 20 20 20 54 |ty@lines|}.% T|
|00001b00| 68 69 73 20 6d 61 63 72 | 6f 20 73 6b 69 70 73 20 |his macr|o skips |
|00001b10| 65 6d 70 74 79 20 6c 69 | 6e 65 73 20 75 6e 74 69 |empty li|nes unti|
|00001b20| 6c 20 69 74 20 66 69 6e | 64 73 20 65 69 74 68 65 |l it fin|ds eithe|
|00001b30| 72 20 61 20 6e 6f 6e 2d | 65 6d 70 74 79 0a 25 20 |r a non-|empty.% |
|00001b40| 20 20 20 6c 69 6e 65 20 | 6f 72 20 74 68 65 20 65 | line |or the e|
|00001b50| 6e 64 20 6f 66 20 74 68 | 65 20 66 69 6c 65 2e 20 |nd of th|e file. |
|00001b60| 49 66 20 6e 65 63 65 73 | 73 61 72 79 20 69 74 20 |If neces|sary it |
|00001b70| 73 65 74 73 20 74 68 65 | 0a 25 20 20 20 20 7c 5c |sets the|.% |\|
|00001b80| 69 66 40 6e 6f 74 72 65 | 61 64 79 7c 20 66 6c 61 |if@notre|ady| fla|
|00001b90| 67 2e 20 54 68 65 20 6c | 61 73 74 20 6c 69 6e 65 |g. The l|ast line|
|00001ba0| 20 72 65 61 64 20 69 73 | 20 6c 65 66 74 20 69 6e | read is| left in|
|00001bb0| 20 7c 5c 4d 40 6c 69 6e | 65 7c 2e 0a 25 20 20 20 | |\M@lin|e|..% |
|00001bc0| 20 5c 62 65 67 69 6e 7b | 6d 61 63 72 6f 63 6f 64 | \begin{|macrocod|
|00001bd0| 65 7d 0a 5c 64 65 66 5c | 73 6b 69 70 40 65 6d 70 |e}.\def\|skip@emp|
|00001be0| 74 79 40 6c 69 6e 65 73 | 7b 25 0a 20 20 7b 5c 6c |ty@lines|{%. {\l|
|00001bf0| 6f 6f 70 0a 20 20 20 20 | 5c 65 6e 64 6c 69 6e 65 |oop. |\endline|
|00001c00| 63 68 61 72 3d 2d 31 0a | 20 20 20 20 5c 69 66 65 |char=-1.| \ife|
|00001c10| 6f 66 5c 4d 40 61 64 72 | 66 69 6c 65 0a 20 20 20 |of\M@adr|file. |
|00001c20| 20 20 20 5c 67 6c 6f 62 | 61 6c 5c 40 6e 6f 74 72 | \glob|al\@notr|
|00001c30| 65 61 64 79 66 61 6c 73 | 65 0a 20 20 20 20 20 20 |eadyfals|e. |
|00001c40| 5c 40 74 65 6d 70 73 77 | 61 66 61 6c 73 65 0a 20 |\@tempsw|afalse. |
|00001c50| 20 20 20 5c 65 6c 73 65 | 0a 20 20 20 20 20 20 5c | \else|. \|
|00001c60| 67 6c 6f 62 61 6c 5c 40 | 6e 6f 74 72 65 61 64 79 |global\@|notready|
|00001c70| 74 72 75 65 0a 20 20 20 | 20 20 20 5c 67 6c 6f 62 |true. | \glob|
|00001c80| 61 6c 5c 72 65 61 64 5c | 4d 40 61 64 72 66 69 6c |al\read\|M@adrfil|
|00001c90| 65 20 74 6f 5c 4d 40 6c | 69 6e 65 0a 20 20 20 20 |e to\M@l|ine. |
|00001ca0| 20 20 5c 69 66 78 5c 4d | 40 6c 69 6e 65 5c 40 65 | \ifx\M|@line\@e|
|00001cb0| 6d 70 74 79 0a 20 20 20 | 20 20 20 20 20 5c 40 74 |mpty. | \@t|
|00001cc0| 65 6d 70 73 77 61 74 72 | 75 65 0a 20 20 20 20 20 |empswatr|ue. |
|00001cd0| 20 5c 65 6c 73 65 0a 20 | 20 20 20 20 20 20 20 5c | \else. | \|
|00001ce0| 40 74 65 6d 70 73 77 61 | 66 61 6c 73 65 0a 20 20 |@tempswa|false. |
|00001cf0| 20 20 20 20 5c 66 69 0a | 20 20 20 20 5c 66 69 0a | \fi.| \fi.|
|00001d00| 20 20 20 20 5c 69 66 40 | 74 65 6d 70 73 77 61 0a | \if@|tempswa.|
|00001d10| 20 20 20 20 5c 72 65 70 | 65 61 74 7d 25 0a 20 20 | \rep|eat}%. |
|00001d20| 7d 0a 25 20 20 20 20 5c | 65 6e 64 7b 6d 61 63 72 |}.% \|end{macr|
|00001d30| 6f 63 6f 64 65 7d 0a 25 | 20 20 5c 65 6e 64 7b 6d |ocode}.%| \end{m|
|00001d40| 61 63 72 6f 7d 0a 25 0a | 25 20 5c 46 69 6e 61 6c |acro}.%.|% \Final|
|00001d50| 65 0a 5c 65 6e 64 69 6e | 70 75 74 |e.\endin|put |
+--------+-------------------------+-------------------------+--------+--------+